Returning multiple Rows from PL/pgSQL-Function

Поиск
Список
Период
Сортировка
От Alvar Freude
Тема Returning multiple Rows from PL/pgSQL-Function
Дата
Msg-id 63885762.994679598@[192.168.100.219]
обсуждение исходный текст
Ответы Re: Returning multiple Rows from PL/pgSQL-Function  (Alex Pilosov <alex@pilosoft.com>)
Список pgsql-sql
Hi,

I want to create a function (PL/pgSQL), which return multiple rows. But it
fails -- when Creating the function, I get a notice:
 NOTICE:  ProcedureCreate: return type 'records' is only a shell


When executing it, this error:
 ERROR:  fmgr_info: function 0: cache lookup failed


How should I do this?


The function is simple:
  CREATE FUNCTION foo (timestamp) RETURNS SETOF records AS        '       BEGIN          RETURN SELECT * FROM table;
  END;       ' LANGUAGE 'plpgsql';  
 


or, in more detail the exact function:

  CREATE FUNCTION get_emotions (timestamp) RETURNS SETOF records AS         '        DECLARE            start ALIAS FOR
$1;          end_id int4;        BEGIN           SELECT emotion_id FROM emotions                             WHERE date
<=start                             LIMIT 1                              INTO end_id;           RETURN SELECT
emotion_id,emotion1, [...]                 FROM  emotions                  WHERE emotion_id BETWEEN end_id-3000 AND
end_id                ORDER BY date_epoch + full_rating*(3600*12)                 LIMIT 300;        END;        '
LANGUAGE'plpgsql'; 
 



Thanx for any help!


Ciao Alvar



-- 
| AGI ............................................................... |
| Magirusstrasse 21B, 70469 Stuttgart . Fon +49 (0)711.228 74-50 .... |
| http://www.agi.com/diary/ (english) . http://www.agi.de/tagebuch/ . |
| >>>>>> NEWS >>> AGI holt Bronze-Loewen in Cannes! <<<<<<<<<<<<<<<<< |




В списке pgsql-sql по дате отправления:

Предыдущее
От: Stephan Szabo
Дата:
Сообщение: Re: how can we change definition of a table once created?
Следующее
От: "Richard Huxton"
Дата:
Сообщение: Re: Returning multiple Rows from PL/pgSQL-Function